package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import business.DefiHistorique;
import business.Utilisateur;
import business.utilities.DefiHistorique_Package;

import com.cedarsoftware.util.io.JsonWriter;


public class S_Challenge extends HttpServlet {
	private static final long serialVersionUID = 1L;


	@Override
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("json");
		response.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		
		Utilisateur utilisateur = (Utilisateur) request.getSession().getAttribute("utilisateur");
		
		// Renvoie l'historique des défis.
		List<DefiHistorique_Package> json = new ArrayList<DefiHistorique_Package>();
		
		List<DefiHistorique> defisHistoriqueFaits = utilisateur.getDefisHistoriqueFaits();
		if(defisHistoriqueFaits != null && !defisHistoriqueFaits.isEmpty()) {
			for(DefiHistorique dh : defisHistoriqueFaits) {
				DefiHistorique_Package dhp = new DefiHistorique_Package();
				dhp.update(dh, utilisateur);
				json.add(dhp);
			}
		}
		
		List<DefiHistorique> defisHistoriqueRecus = utilisateur.getDefisHistoriqueRecus();
		if(defisHistoriqueRecus != null && !defisHistoriqueRecus.isEmpty()) {
			for(DefiHistorique dh : defisHistoriqueRecus) {
				DefiHistorique_Package dhp = new DefiHistorique_Package();
				dhp.update(dh, utilisateur);
				json.add(dhp);
			}
		}
		
		if(!json.isEmpty())
			out.print(JsonWriter.objectToJson(json));
		else
			out.print("{}");
		
		out.close();
	}
}